草庐IT

Java TLS-PSK 套接字

全部标签

javascript - 套接字远程端口代表什么?

http-client.js:consthttp=require('http');http.get({port:9001,host:'localhost'},(res)=>{//...});tcp-server.js:constnet=require('net');letserver=newnet.Server();server.listen(9001,'localhost',(err)=>{console.log('Startedlistening',server.address());});server.on('connection',(sock)=>{console.log(`C

C# TCP Socket编程——向所有套接字发送数据

我正在从事服务器/多客户端编程。我会停止追逐一切都运行良好但是foreach(SocketsctinsocketArray){sct.send(data);}不工作。它假设将数据发送到所有连接的套接字,但只有发出请求的套接字才能获得响应。我在想是不是和tcp打包有关?或者我不知道为什么它不起作用?如果有人可以提供帮助,我将非常感激。谢谢 最佳答案 假设data是byte[]并且您的意思是sct.Send,那么:它应该可以正常工作,并发送相同的负载-按顺序-到socketArray中的所有套接字。这里没有什么特别细微的差别-每个套接字

sockets - 关闭套接字和关闭网络流之间的区别(System.Net.Sockets)

我有一个代理服务器实现,如果我直接关闭套接字(System.Net.SocketsTCPClient.Client.Close())然后客户端收到连接中止错误,但如果我使用系统,则在向客户端发送最终响应后.Net.SocketsTCPClient.getStream().Close(),它成功运行。我想了解有什么区别以及为什么客户端在第一种情况下收到错误? 最佳答案 我想说,套接字的关闭并不是大多数人认为的微不足道的操作:)首先,您应该了解应该如何正确完成关闭。基本上,您必须考虑到close是一种消息,就像从您的套接字发出的任何其他

multithreading - 是否对通过 tcp 套接字发送的并发文件使用互斥锁

我开发了一个多线程系统,它为每个客户端请求创建一个子进程,以通过tcp套接字读取文件并将文件发送给客户端。我很难确定每次文件读取都使用互斥量是否会提高性能,或者让子进程在不使用互斥量的情况下并发地从硬盘读取文件是否更好。文件大小平均为500ko,我们估计同时的tcp连接为每分钟最多2000个。PS:程序以2000字节为单位读取每个文件,发送每个缓冲区并循环直到传输完成 最佳答案 我一直在处理这类问题:哪些操作由谁在哪些资源上执行?正在执行的一些操作是:读取文件(可能共享?)操作系统(Linux?)是否保证文件读取是线程安全的?是它l

java - 在java中获取用于tcp连接的开放套接字

我正在用Java开发一个torrent,我有一个小问题。如何在Java中为我的进程获取一个打开的套接字?我需要一个序列中大约100个空闲套接字,就像10000-10100。我所知道的是通过使用socket=newSocket(ip,port);我们需要提供ip和端口。当然,这是调试的情况,我的ip是环回的,但我只能通过在端口字段中使用随机数找到一个空闲端口。请告诉我如何为tcp找到一系列空闲端口。 最佳答案 您不能保证免费的端口号。您将不得不扫描机器上的端口,寻找1024到65535之间的任何空闲端口。如果您想创建一个客户端套接字,

c - 使用 Select 区分套接字

我正在制作一个监听多个端口的TCP/IP服务器。我选择使用select来启用对多个事件的处理。所以目前,我有两个套接字,它们连接到两个不同的端口(3000、3001)。进入选择循环后,我希望服务器根据当前处理的端口做出不同的响应。一旦进入选择,我如何知道我在哪个套接字上?我正在为我的选择循环添加代码,希望你们能给我指出正确的方向。请注意,这是在我将两个文件描述符都添加到集合中之后开始的。while(1){/*Blockuntilinputarrivesononeormoreactivesockets.*/readfds=activefds;if(select(FD_SETSIZE,&r

c - C中的多线程客户端-服务器套接字编程

我正在同一台机器上用C语言实现多线程客户端-服务器套接字编程,该机器具有相同的IP地址,但客户端和服务器的端口不同。我在C环境中使用pthread概念实现了它。但是我只能看到我的客户端线程正在运行,而我的服务器线程一旦到达“accept()”例程就停止了。我想知道可能是什么问题。如果有人能找出我在哪里犯了错误,那将非常有帮助我的客户端代码如下所示:void*client_connect(void*arg){intclient_socket;structsockaddr_inServ_Addr;structsockaddr_inClient_Addr;intaddrlen=sizeof(

Ruby TCP 套接字永远不会得到回复

我使用TCP连接并像这样发送一些数据:beginsession="mysession"socket=TCPSocket.new(tcpaddress,port)socket.setsockopt(Socket::IPPROTO_TCP,Socket::TCP_NODELAY,1)puts"sendingtosocketHELO"+sessionsocket.write('HELO'+session)putssocket.readsocket.closerescueException=>myExceptionputs"Exceptionrescued:#{myException}"end

c# - 使用 C# 异步套接字读取面向行的数据

我是C#新手,但从事TCP和套接字编程多年。我想创建一个程序来执行异步I/O(仅接收)来自多个服务器。数据是文本,由换行符分隔(非常简单)。我的问题是如果我使用StreamReader是否可以假设在我的异步读取回调函数中,我是否可以假设至少能得到一行完整的数据,并且它不会以某种方式阻塞。按照我的理解,我想在我的中做一个StreamReaderReadLine异步读取回调。但是BeginRead中的内容知道我真的想做面向行的数据?我显然不知道阅读的长度那时。我希望这是有道理的,提前致谢!米奇 最佳答案 根据您的帖子,我认为您需要创建自

java - 连接到 Java 客户端的 C 服务器套接字问题

我正在Android上编写一个应用程序,我希望它能够知道服务器(我用C编写)何时死机或关闭。我试图通过让服务器以指定的时间间隔向客户端(Android应用程序)发送消息来实现这一点。如果没有收到此消息,则客户端知道它不再连接到服务器。它们使用TCP套接字进行通信。我的问题是Android应用程序似乎无法读取服务器写入的内容。当它到达尝试从服务器套接字读取的代码的第一部分时,它只是挂起。在Android应用程序中,我使用BufferedReader从套接字中读取tmpstr=inFromServer.readLine();其中tmpstr是一个字符串,inFromServer是Buffe